home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / LANG / SML40 / !Sml / Sml / compstuff / hc / dumpcode < prev    next >
Text File  |  1990-09-17  |  7KB  |  494 lines

  1. #ifdef DEBUGinterp
  2. char opstrings[][40] = {
  3.     "OpTrouble",
  4.     "OpGetFreeW",
  5.     "OpTuple_0",
  6.     "OpTrue",
  7.     "OpFalse",
  8.     "OpInt",
  9.     "OpNo"Op",
  10.     "OpExport",
  11.     "OpImport",
  12.     "OpNewSubscr",
  13.     "OpVar0",
  14.     "OpVar1",
  15.     "OpTuple",
  16.     "OpVariant",
  17.     "OpRef",
  18.     "OpFst",
  19.     "OpSnd",
  20.     "OpHd",
  21.     "OpTl",
  22.     "OpNull",
  23.     "OpOutl",
  24.     "OpOutr",
  25.     "OpIs0",
  26.     "OpIs1",
  27.     "OpQuaDot",
  28.     "OpNewUpdate",
  29.     "OpQuaIs",
  30.     "OpQuaAs",
  31.     "OpDestVariant",
  32.     "OpCase",
  33.     "OpNot",
  34.     "OpAnd",
  35.     "OpOr",
  36.     "OpNeg",
  37.     "OpPlus",
  38.     "OpDiff",
  39.     "OpTimes",
  40.     "OpDivide",
  41.     "OpIntDiv",
  42.     "OpMod",
  43.     "OpEq",
  44.     "OpEqBool",
  45.     "OpEqInt",
  46.     "OpEqString",
  47.     "OpGreater",
  48.     "OpLess",
  49.     "OpGreatEq",
  50.     "OpLessEq",
  51.     "OpExplode",
  52.     "OpImplode",
  53.     "OpExpAscii",
  54.     "OpImpAscii",
  55.     "OpStringOfInt",
  56.     "OpIntOfString",
  57.     "OpAt",
  58.     "OpAssign",
  59.     "OpJumpW",
  60.     "OpTrueJumpW",
  61.     "OpFalseJumpW",
  62.     "OpExecute",
  63.     "OpClosure",
  64.     "OpDumClosure",
  65.     "OpRecClosure",
  66.     "OpGetLocalW",
  67.     "OpPop",
  68.     "OpIncRef",
  69.     "OpSqueezeW",
  70.     "OpDecRef",
  71.     "OpDestNil",
  72.  
  73.     "OpReturn",
  74.     "OpSaveFrame",
  75.     "OpApplFrame",
  76.     "OpRestFrame",
  77.     "OpTailApply_n1",
  78.     "OpFunId",
  79.     "OpFunComp",
  80.     "OpNotImmed",
  81.     "OpPrintObj",
  82.     "OpUnTrap",
  83.  
  84.  
  85.     "OpStopProcess",
  86.     "OpTuple_2",
  87.  
  88.     "OpCollect",
  89.     "OpPrintNull",
  90.     "OpPrintBool",
  91.     "OpPrintInt",
  92.     "OpPrintString",
  93.     "OpOutString",
  94.     "OpPrompt",
  95.     "OpSystem",
  96.     "OpSqueeze1",
  97.     "OpReturn1",
  98.     "OpTailApply_11",
  99.     "OpTailApply_0n",
  100.     "OpTailApplyW",
  101.     "OpGetLiteralW",
  102.     "OpStringLength",
  103.     "OpSubString",
  104.     "OpArray",
  105.     "OpSize",
  106.     "OpSubscr",
  107.     "OpUpdate",
  108.     "OpStringLEQ",
  109.     "OpStringLSS",
  110.     "OpStringGEQ",
  111.     "OpStringGTR",
  112.     "OpReadLine",
  113.     "OpLookahead",
  114.     "OpSmashProcess",
  115.     "OpListLength",
  116.     "OpOrd",
  117.     "OpMakeText",
  118.     "OpStoreTextByte",
  119.     "OpStoreTextWord",
  120.     "OpStoreTextLong",
  121.     "OpArrayOfList",
  122.     "OpBAFetch",
  123.     "OpBAStore",
  124.     "OpGetLoc0",
  125.     "OpGetLoc1",
  126.     "OpStringHash",
  127.     "OpEqRef",
  128.     "OpBpt",
  129.     "OpCurrentProcess",
  130.     "OpNewProcess",
  131.     "OpSuspendProcess",
  132.     "OpWaitForProcess",
  133.     "OpBigVar",
  134.     "OpXConClosure",
  135.     "OpIncRefAt", 
  136.     "OpObjComp",
  137.     "OpDestBigVar",
  138.     "OpNewRaise",
  139.     "OpNewHandle",
  140.     "OpBind",
  141.     "OpScanStringWhileIn",
  142.     "OpScanStringUntilIn",
  143.     "OpVariantObject",
  144.  
  145.  
  146.     "OpClosure1",
  147.     "OpDumClosure1",
  148.     "OpSpawnProcess",
  149.  
  150.     "OpRescheduleProcess",
  151.     "OpNewState",
  152.     "OpSmashState",
  153.     "OpCurrentState",
  154.  
  155.     "OpWaitForProcesses",
  156.     "OpSynchronise",
  157.     "OpRandomMerge",
  158.     "OpExportCurrentState",
  159.     "OpMoveSubstring",
  160.     "OpStringOfLength",
  161.     "OpOldScanStringUntilIn",
  162.     "OpOldScanStringWhileIn",
  163.     "OpCpuTime",
  164.     "Op"OpenStream",
  165.     "OpCreateStream",
  166.     "OpReadStream",
  167.     "OpReadToString",
  168.     "OpWriteStream",
  169.     "OpCloseStream",
  170.     "OpInteractive",
  171.     "OpReturn0",
  172.     "OpDestTuple",
  173.     "OpDestTuple_n0",
  174.     "OpDestQCons",
  175.     "OpSlideW",
  176.     "OpChangeDir",
  177.     "OpNth",
  178.     "OpRev",
  179.     "OpTupleOfList",
  180.     "OpDestTuple_20",
  181.     "OpCurrClos",
  182.     "OpByteNum",
  183.     "OpFPlus",
  184.     "OpFDiff",
  185.     "OpFTimes",
  186.     "OpFDivide",
  187.     "OpFNeg",
  188.     "OpFEql",
  189.  
  190.     "OpFGeq",
  191.     "OpFGtr",
  192.     "OpFLeq",
  193.     "OpFLss",
  194.     "OpReal",
  195.     "OpFloor",
  196.     "OpStringOfReal",
  197.     "OpRealOfString",
  198.     "OpPrintReal",
  199.     "OpDestInt",
  200.     "OpDestReal",
  201.     "OpCaseVal",
  202.     "OpTailApply_n0",
  203.     "OpDestString",
  204.  
  205.     "OpPopTrap",
  206.     "OpGetLocalB",
  207.     "OpGetLiteralB",
  208.     "OpGetLiteral1",
  209.     "OpGetFreeB",
  210.     "OpGetFree1",
  211.     "OpSqueezeB",
  212.     "OpSlideB",
  213.     "OpTailApplyB",
  214.     "OpJumpB",
  215.     "OpFalseJumpB",
  216.     "OpTrueJumpB",
  217.     "OpDestTailApply",
  218.     "OpTrace",
  219.     "OpSqrt",
  220.     "OpSin",
  221.     "OpCos",
  222.     "OpArctan",
  223.     "OpExp",
  224.     "OpLn",
  225.     "OpFetchByte",
  226.     "OpUniqueStamp",
  227.     "OpStampOfFile",
  228.     "OpGetEnv",
  229.     "OpStoreByte",
  230.     "OpFlush",
  231.     "OpFUpPlus",
  232.     "OpFUpDiff",
  233.     "OpFUpTimes",
  234.     "OpFUpDivide",
  235.      "OpReRaise", 
  236.     "OpRaiseMatch",
  237. "INVALID_OPCODE"} ; 
  238.  
  239.  
  240. int opcode[] = {
  241.  
  242.     0,
  243.     1,
  244.     2,
  245.     3,
  246.     4,
  247.     5,
  248.     6,
  249.     7,
  250.     8,
  251.     9,
  252.     10,
  253.     11,
  254.     12,
  255.     13,
  256.     14,
  257.     15,
  258.     16,
  259.     17,
  260.     18,
  261.     19,
  262.     20,
  263.     21,
  264.     22,
  265.     23,
  266.     24,
  267.     25,
  268.     26,
  269.     27,
  270.     28,
  271.     29,
  272.     30,
  273.     31,
  274.     32,
  275.     33,
  276.     34,
  277.     35,
  278.     36,
  279.     37,
  280.     38,
  281.     39,
  282.     40,
  283.     41,
  284.     42,
  285.     43,
  286.     44,
  287.     45,
  288.     46,
  289.     47,
  290.     48,
  291.     49,
  292.     50,
  293.     51,
  294.     52,
  295.     53,
  296.     54,
  297.     55,
  298.     56,
  299.     57,
  300.     58,
  301.     59,
  302.     60,
  303.     61,
  304.     62,
  305.     63,
  306.     64,
  307.     65,
  308.     66,
  309.     67,
  310.     68,
  311.     70,
  312.     71,
  313.     72,
  314.     73,
  315.     74,
  316.     75,
  317.     76,
  318.     77,
  319.     78,
  320.     79,
  321.     82,
  322.     83,
  323.     85,
  324.     86,
  325.     87,
  326.     88,
  327.     89,
  328.     90,
  329.     91,
  330.     92,
  331.     93,
  332.     94,
  333.     95,
  334.     96,
  335.     97,
  336.     99,
  337.     100,
  338.     101,
  339.     103,
  340.     104,
  341.     105,
  342.     106,
  343.     107,
  344.     108,
  345.     109,
  346.     110,
  347.     111,
  348.     112,
  349.     114,
  350.     115,
  351.     116,
  352.     117,
  353.     118,
  354.     119,
  355.     120,
  356.     121,
  357.     122,
  358.     123,
  359.     124,
  360.     125,
  361.     126,
  362.     127,
  363.     128,
  364.     129,
  365.     130,
  366.     131,
  367.     132,
  368.     133,
  369.     134,
  370.     135,
  371.     136,
  372.     137,
  373.     138,
  374.     139,
  375.     140,
  376.     141,
  377.     142,
  378.     143,
  379.     146,
  380.     147,
  381.     148,
  382.     150,
  383.     151,
  384.     152,
  385.     153,
  386.     155,
  387.     156,
  388.     157,
  389.     158,
  390.     159,
  391.     160,
  392.     161,
  393.     162,
  394.     163,
  395.     164,
  396.     165,
  397.     166,
  398.     167,
  399.     168,
  400.     169,
  401.     170,
  402.     171,
  403.     172,
  404.     173,
  405.     174,
  406.     175,
  407.     176,
  408.     178,
  409.     179,
  410.     180,
  411.     181,
  412.     182,
  413.     183,
  414.     184,
  415.     185,
  416.     186,
  417.     187,
  418.     188,
  419.     189,
  420.     191,
  421.     192,
  422.     193,
  423.     194,
  424.     195,
  425.     196,
  426.     197,
  427.     198,
  428.     199,
  429.     200,
  430.     201,
  431.     202,
  432.     203,
  433.     204,
  434.     206,
  435.     207,
  436.     208,
  437.     209,
  438.     210,
  439.     211,
  440.     212,
  441.     213,
  442.     214,
  443.     215,
  444.     216,
  445.     217,
  446.     218,
  447.     219,
  448.     220,
  449.     221,
  450.     222,
  451.     223,
  452.     224,
  453.     225,
  454.     226,
  455.     227,
  456.     228,
  457.     229,
  458.     230,
  459.     231,
  460.     232,
  461.     233,
  462.     234,
  463.     235,
  464.     253,
  465.     254,
  466.     -1 };
  467.  
  468.  
  469. #include <stdio.h>
  470. #include "bcodes.h"
  471. #include "debug.h"
  472. #define OPCODE(i) opcode[i]
  473. #define OPSTRINGS(i) opstrings[i]
  474.  
  475. dumpcode()
  476. {
  477.    int   i;
  478.    int   j;
  479.    FILE  *OpFile ;
  480.  
  481.    OpFile = fopen(OpNameFile,"w") ;
  482.    for (i=1;i<NumByteCodes;i++) {
  483.       for (j=0;(OPCODE(j)!=(-1));j++) {
  484.          if (i == OPCODE(j)) break ;
  485.       }
  486.       fprintf(OpFile,"Static  %40.40s\t%d\t%d\n",OPSTRINGS(j),
  487.               OpcodeCount[i],i) ;     
  488.       fprintf(OpFile,"Dynamic %40.40s\t%d\t%d\n",OPSTRINGS(j),
  489.               DynamicOpcodeCount[i],i) ;
  490.    }
  491.    fclose(OpFile) ;
  492. }
  493. #endif
  494.